package com.offcn.bigdata.spark.p1

import org.apache.spark.{SparkConf, SparkContext}

object ScalaWordCountOps {
    def main(args: Array[String]): Unit = {
        /**
         * master:指的是spark程序运行的方式
         * local           :spark程序基于本地模式运行，不依赖于集群本身
         *     local       :为当前的spark程序分配一个工作线程来执行
         *     local[N]    :为当前的spark程序分配N个工作线程来执行
         *     local[*]    :为当前的spark程序分配可用个工作线程来执行
         *     local[M,N]  :如果作业提交
         * standalone      :基于spark集群自身来执行spark作业
         *     client      :sparkcontext在提交代码的机器上面创建
         *     cluster     :sparkcontext在spark集群的上面创建,也就是worker中创建
         *     spark://ip1:port1,比如spark://bigdata01:7077,bigdata02:7077
         *     ha的写法: spark://ip1:port1,ip2:port2 比如spark://bigdata01:7077,bigdata02:7077
         * yarn            :基于yarn来执行spark程序
         *     yarn-client :sparkcontext在提交代码的机器上面创建
         *     yarn-cluster:sparkcontext在yarn集群的上面创建,也就是nodemanager中创建
         */
        val conf = new SparkConf()
            .setAppName("ScalaWordCountOps")
            .setMaster("local[*]")
        val sc = new SparkContext(conf)

        val lines = sc.textFile("F:/hello.txt")

        val words = lines.flatMap(_.split("//s+"))
        val ret = words.map((_,1)).reduceByKey(_+_)
        ret.foreach(println)
        sc.stop()
    }
}
